﻿using System;
using BasePersistenceNamespace.Fake;

namespace MainPersistenceNamespace.Fake
{
    /// <summary>
    /// メモリ上のコレクションを使用して実装される作業スペースのファクトリです。
    /// </summary>
    public sealed class FWorkspaceFactory : FWorkspaceFactoryBase
    {
        /// <summary>
        /// <see cref="FWorkspaceFactory"/> クラスの新しいインスタンスを初期化します。
        /// </summary>
        /// <param name="id">メモリ ID。</param>
        public FWorkspaceFactory(string id)
        {
            _id = id;
        }


        /// <summary>
        /// メモリ ID。
        /// </summary>
        private readonly string _id;


        /// <inheritdoc/>
        protected override System.Collections.Generic.List<object> GetAllEntityList()
        {
            return Memory.Memories[_id].Entities;
        }
    }
}
